]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
lookingGlass: Add an easier way to see extension errors
authorJasper St. Pierre <jstpierre@mecheye.net>
Fri, 30 Sep 2011 07:58:44 +0000 (03:58 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Fri, 30 Sep 2011 16:19:30 +0000 (12:19 -0400)
Use the extensions tab to show errors belonging to each extension.

https://bugzilla.gnome.org/show_bug.cgi?id=660546

js/ui/lookingGlass.js

index c371895577e37b9cfec65dfe343b7e1a0ed9ed77..9a57c1ecdfce3d2519c79f3591e4271c72dfa465 100644 (file)
@@ -685,6 +685,34 @@ Extensions.prototype = {
         Main.lookingGlass.close();
     },
 
+    _onViewErrors: function (actor) {
+        let meta = actor._extensionMeta;
+        let shouldShow = !actor._isShowing;
+
+        if (shouldShow) {
+            let errors = ExtensionSystem.errors[meta.uuid];
+            let errorDisplay = new St.BoxLayout({ vertical: true });
+            if (errors && errors.length) {
+                for (let i = 0; i < errors.length; i ++)
+                    errorDisplay.add(new St.Label({ text: errors[i] }));
+            } else {
+                /* Translators: argument is an extension UUID. */
+                let message = _("%s has not emitted any errors.").format(meta.uuid);
+                errorDisplay.add(new St.Label({ text: message }));
+            }
+
+            actor._errorDisplay = errorDisplay;
+            actor._parentBox.add(errorDisplay);
+            actor.label = _("Hide Errors");
+        } else {
+            actor._errorDisplay.destroy();
+            actor._errorDisplay = null;
+            actor.label = _("Show Errors");
+        }
+
+        actor._isShowing = shouldShow;
+    },
+
     _stateToString: function(extensionState) {
         switch (extensionState) {
             case ExtensionSystem.ExtensionState.ENABLED:
@@ -729,6 +757,13 @@ Extensions.prototype = {
             metaBox.add(webpage.actor);
         }
 
+        let viewerrors = new Link.Link({ label: _("Show Errors") });
+        viewerrors.actor._extensionMeta = meta;
+        viewerrors.actor._parentBox = box;
+        viewerrors.actor._isShowing = false;
+        viewerrors.actor.connect('clicked', Lang.bind(this, this._onViewErrors));
+        metaBox.add(viewerrors.actor);
+
         return box;
     }
 };